##############################################################################
# Copyright (c) 1998 Free Software Foundation, Inc.                          #
#                                                                            #
# Permission is hereby granted, free of charge, to any person obtaining a    #
# copy of this software and associated documentation files (the "Software"), #
# to deal in the Software without restriction, including without limitation  #
# the rights to use, copy, modify, merge, publish, distribute, distribute    #
# with modifications, sublicense, and/or sell copies of the Software, and to #
# permit persons to whom the Software is furnished to do so, subject to the  #
# following conditions:                                                      #
#                                                                            #
# The above copyright notice and this permission notice shall be included in #
# all copies or substantial portions of the Software.                        #
#                                                                            #
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
# DEALINGS IN THE SOFTWARE.                                                  #
#                                                                            #
# Except as contained in this notice, the name(s) of the above copyright     #
# holders shall not be used in advertising or otherwise to promote the sale, #
# use or other dealings in this Software without prior written               #
# authorization.                                                             #
##############################################################################
#
#  Author:  Juergen Pfeifer, 1996
#  Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
#
#  Version Control
#  $Revision: 1.41 $
#
.SUFFIXES:

SHELL		= /bin/sh
THIS		= Makefile

x		= @PROG_EXT@

top_srcdir	= @top_srcdir@
DESTDIR		= @DESTDIR@
srcdir		= @srcdir@
prefix		= @prefix@
exec_prefix	= @exec_prefix@
ADA_INCLUDE	= $(DESTDIR)@ADA_INCLUDE@
ADA_OBJECTS	= $(DESTDIR)@ADA_OBJECTS@

INSTALL		= @INSTALL@
INSTALL_DATA	= @INSTALL_DATA@

AWK		= @AWK@
LN_S		= @LN_S@

HOST_CC		= @BUILD_CC@
CFLAGS		= @CFLAGS@

CPPFLAGS	= @ACPPFLAGS@ \
		  -DHAVE_CONFIG_H -I$(srcdir)

CCFLAGS		= $(CPPFLAGS) $(CFLAGS)
CFLAGS_NORMAL	= $(CCFLAGS)
CFLAGS_DEBUG	= $(CCFLAGS) @CC_G_OPT@ -DTRACE
CFLAGS_PROFILE	= $(CCFLAGS) -pg
CFLAGS_SHARED	= $(CCFLAGS) @CC_SHARED_OPTS@

CFLAGS_DEFAULT	= $(CFLAGS_@DFT_UPR_MODEL@)

LINK		= $(HOST_CC)
LD_FLAGS	= @LD_MODEL@ $(LOCAL_LIBS) @LDFLAGS@ @LIBS@ @LOCAL_LDFLAGS2@ $(LDFLAGS)

RANLIB		= @RANLIB@

LIB_CURSES      = -L../../lib -lncurses@LIB_SUFFIX@

M4		= m4
M4FLAGS		=

GENERATE	= ./gen$x '@DFT_ARG_SUFFIX@'
DEL_ADAMODE	= sed -e '/^\-\-\ \ \-\*\-\ ada\ \-\*\-.*/d'

GNATHTML	= `type -p gnathtml || type -p gnathtml.pl`
GNATHP          = www.gnat.com
MAIL            = www.familiepfeifer.de/Contact.aspx?Lang=en
HOMEP           = www.familiepfeifer.de/juergen

################################################################################
ALIB            = @cf_ada_package@
ABASE		= $(ALIB)-curses

ADA_SRCDIR	= ../src

GEN_FILES0      = Base_Defs

GEN_FILES1      = Key_Definitions              		\
		  Old_Keys                     		\
		  Character_Attribute_Set_Rep  		\
		  AC_Rep                       		\
		  Color_Defs                   		\
		  ACS_Map                      		\
		  Linker_Options               		\
		  Base_Defs			        \
		  Window_Offsets                        \
		  Version_Info				\
		  Trace_Defs

GEN_FILES2      = Menu_Opt_Rep        		    	\
		  Menu_Base_Defs               		\
		  Menu_Linker_Options          		\
		  Item_Rep

GEN_FILES3      = Form_Opt_Rep                 		\
		  Form_Base_Defs               		\
		  Form_Linker_Options          		\
		  Field_Rep

GEN_FILES4      = Mouse_Base_Defs              		\
		  Mouse_Event_Rep			\
		  Mouse_Events                          \
		  Panel_Linker_Options

GEN_FILES5	= Chtype_Def                            \
		  Eti_Defs

GEN_TARGETS     = $(ADA_SRCDIR)/$(ABASE).ads         			\
	          $(ADA_SRCDIR)/$(ABASE)-aux.ads   			\
	          $(ADA_SRCDIR)/$(ABASE)-trace.ads   			\
	          $(ADA_SRCDIR)/$(ABASE)-menus.ads   			\
	          $(ADA_SRCDIR)/$(ABASE)-forms.ads   			\
	          $(ADA_SRCDIR)/$(ABASE)-mouse.ads 			\
	          $(ADA_SRCDIR)/$(ABASE)-panels.ads			\
	          $(ADA_SRCDIR)/$(ABASE)-menus-menu_user_data.ads	\
	          $(ADA_SRCDIR)/$(ABASE)-menus-item_user_data.ads	\
	          $(ADA_SRCDIR)/$(ABASE)-forms-form_user_data.ads	\
	          $(ADA_SRCDIR)/$(ABASE)-forms-field_types.ads		\
	          $(ADA_SRCDIR)/$(ABASE)-forms-field_user_data.ads	\
	          $(ADA_SRCDIR)/$(ABASE)-panels-user_data.ads

GEN_SRC		= $(srcdir)/$(ABASE).ads.m4				\
	          $(srcdir)/$(ABASE)-aux.ads.m4 	  		\
	          $(srcdir)/$(ABASE)-trace.ads.m4 	  		\
	          $(srcdir)/$(ABASE)-menus.ads.m4 	  		\
	          $(srcdir)/$(ABASE)-forms.ads.m4   			\
	          $(srcdir)/$(ABASE)-mouse.ads.m4			\
	          $(srcdir)/$(ABASE)-panels.ads.m4			\
	          $(srcdir)/$(ABASE)-menus-menu_user_data.ads.m4	\
	          $(srcdir)/$(ABASE)-menus-item_user_data.ads.m4	\
	          $(srcdir)/$(ABASE)-forms-form_user_data.ads.m4	\
	          $(srcdir)/$(ABASE)-forms-field_types.ads.m4		\
	          $(srcdir)/$(ABASE)-forms-field_user_data.ads.m4	\
	          $(srcdir)/$(ABASE)-panels-user_data.ads.m4


all \
libs :	$(GEN_TARGETS)
	@

sources:

$(ADA_INCLUDE) \
$(ADA_OBJECTS) :
	$(top_srcdir)/mkinstalldirs $@

install \
install.libs :: $(ADA_INCLUDE)
	@echo installing package $(ALIB) in $(ADA_INCLUDE)
	@$(top_srcdir)/tar-copy.sh '$(ALIB)[-.]*.ad?' $(ADA_SRCDIR) $(ADA_INCLUDE)
	@test $(srcdir) != ./ && $(top_srcdir)/tar-copy.sh '$(ALIB)[-.]*.ad?' $(srcdir)/../src $(ADA_INCLUDE)

install \
install.libs :: $(ADA_OBJECTS)
	@echo installing package $(ALIB) in $(ADA_OBJECTS)
	@chmod a-wx $(ADA_SRCDIR)/*.ali
	@$(top_srcdir)/tar-copy.sh '$(ALIB)[-.]*.ali' $(ADA_SRCDIR) $(ADA_OBJECTS)
	@chmod u+x $(ADA_SRCDIR)/*.ali

uninstall \
uninstall.libs ::
	@echo removing package $(ALIB) from $(ADA_INCLUDE)
	-@cd $(ADA_INCLUDE) && rm -f $(ALIB)[-.]*

uninstall \
uninstall.libs ::
	@echo removing package $(ALIB) from $(ADA_OBJECTS)
	-@cd $(ADA_OBJECTS) && rm -f $(ALIB)[-.]*

gen$x:	gen.o
	@ECHO_LINK@ $(LINK) $(CFLAGS_NORMAL) gen.o $(LD_FLAGS) -o $@ $(LIB_CURSES)

gen.o:	$(srcdir)/gen.c
	$(HOST_CC) $(CFLAGS_NORMAL) -c -o $@ $(srcdir)/gen.c

Character_Attribute_Set_Rep: gen$x
	$(GENERATE) B A >$@

Base_Defs: gen$x
	$(GENERATE) B B >$@

Color_Defs: gen$x
	$(GENERATE) B C >$@

Key_Definitions: gen$x
	$(GENERATE) B K >$@

Old_Keys: gen$x
	$(GENERATE) B O >$@

ACS_Map: gen$x
	$(GENERATE) B M >$@

AC_Rep: gen$x
	$(GENERATE) B R >$@

Linker_Options: gen$x
	$(GENERATE) B L >$@

Version_Info: gen$x
	$(GENERATE) B V >$@

Window_Offsets: gen$x
	$(GENERATE) B D >$@

Trace_Defs: gen$x
	$(GENERATE) B T >$@

Menu_Opt_Rep: gen$x
	$(GENERATE) M R >$@

Menu_Base_Defs: gen$x
	$(GENERATE) M B >$@

Menu_Linker_Options: gen$x
	$(GENERATE) M L >$@

Item_Rep: gen$x
	$(GENERATE) M I >$@

Form_Opt_Rep: gen$x
	$(GENERATE) F R >$@

Form_Base_Defs: gen$x
	$(GENERATE) F B >$@

Form_Linker_Options: gen$x
	$(GENERATE) F L >$@

Field_Rep: gen$x
	$(GENERATE) F I >$@

Mouse_Base_Defs: gen$x
	$(GENERATE) P B >$@

Mouse_Event_Rep: gen$x
	$(GENERATE) P M >$@

Mouse_Events: gen$x
	$(GENERATE) B E >$@

Panel_Linker_Options: gen$x
	$(GENERATE) P L >$@

Chtype_Def: gen$x
	$(GENERATE) E C >$@

Eti_Defs: gen$x
	$(GENERATE) E E >$@

$(ADA_SRCDIR)/$(ABASE).ads: 	$(srcdir)/$(ABASE).ads.m4 \
				$(GEN_FILES1) $(srcdir)/normal.m4
	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
	$(srcdir)/$(ABASE).ads.m4 |\
	$(DEL_ADAMODE) >$@

$(ADA_SRCDIR)/$(ABASE)-aux.ads: $(srcdir)/$(ABASE)-aux.ads.m4 \
				$(GEN_FILES5) $(srcdir)/normal.m4
	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
	$(srcdir)/$(ABASE)-aux.ads.m4 |\
	$(DEL_ADAMODE) >$@

$(ADA_SRCDIR)/$(ABASE)-trace.ads: $(srcdir)/$(ABASE)-trace.ads.m4 \
				$(GEN_FILES5) $(srcdir)/normal.m4
	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
	$(srcdir)/$(ABASE)-trace.ads.m4 |\
	$(DEL_ADAMODE) >$@

$(ADA_SRCDIR)/$(ABASE)-menus.ads: $(srcdir)/$(ABASE)-menus.ads.m4 \
				  $(GEN_FILES2) $(srcdir)/normal.m4
	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
	$(srcdir)/$(ABASE)-menus.ads.m4 |\
	$(DEL_ADAMODE) >$@

$(ADA_SRCDIR)/$(ABASE)-forms.ads: $(srcdir)/$(ABASE)-forms.ads.m4 \
				  $(GEN_FILES3) $(srcdir)/normal.m4
	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
	$(srcdir)/$(ABASE)-forms.ads.m4 |\
	$(DEL_ADAMODE) >$@

$(ADA_SRCDIR)/$(ABASE)-mouse.ads: $(srcdir)/$(ABASE)-mouse.ads.m4 \
				  $(GEN_FILES4) $(srcdir)/normal.m4
	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
	$(srcdir)/$(ABASE)-mouse.ads.m4 |\
	$(DEL_ADAMODE) >$@

$(ADA_SRCDIR)/$(ABASE)-panels.ads: $(srcdir)/$(ABASE)-panels.ads.m4 \
				   $(srcdir)/normal.m4
	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
	$(srcdir)/$(ABASE)-panels.ads.m4 |\
	$(DEL_ADAMODE) >$@

$(ADA_SRCDIR)/$(ABASE)-menus-menu_user_data.ads: \
		$(srcdir)/$(ABASE)-menus-menu_user_data.ads.m4 \
		$(srcdir)/normal.m4
	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
	$(srcdir)/$(ABASE)-menus-menu_user_data.ads.m4 |\
	$(DEL_ADAMODE) >$@

$(ADA_SRCDIR)/$(ABASE)-menus-item_user_data.ads: \
		$(srcdir)/$(ABASE)-menus-item_user_data.ads.m4 \
		$(srcdir)/normal.m4
	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
	$(srcdir)/$(ABASE)-menus-item_user_data.ads.m4 |\
	$(DEL_ADAMODE) >$@

$(ADA_SRCDIR)/$(ABASE)-forms-form_user_data.ads: \
		$(srcdir)/$(ABASE)-forms-form_user_data.ads.m4 \
		$(srcdir)/normal.m4
	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
	$(srcdir)/$(ABASE)-forms-form_user_data.ads.m4 |\
	$(DEL_ADAMODE) >$@

$(ADA_SRCDIR)/$(ABASE)-forms-field_types.ads: \
		$(srcdir)/$(ABASE)-forms-field_types.ads.m4 \
		$(srcdir)/normal.m4
	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
	$(srcdir)/$(ABASE)-forms-field_types.ads.m4 |\
	$(DEL_ADAMODE) >$@

$(ADA_SRCDIR)/$(ABASE)-forms-field_user_data.ads: \
		$(srcdir)/$(ABASE)-forms-field_user_data.ads.m4 \
		$(srcdir)/normal.m4
	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
	$(srcdir)/$(ABASE)-forms-field_user_data.ads.m4 |\
	$(DEL_ADAMODE) >$@

$(ADA_SRCDIR)/$(ABASE)-panels-user_data.ads: \
		$(srcdir)/$(ABASE)-panels-user_data.ads.m4 \
		$(srcdir)/normal.m4
	$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
	$(srcdir)/$(ABASE)-panels-user_data.ads.m4 |\
	$(DEL_ADAMODE) >$@

install.progs ::

tags:
	ctags *.[ch]

TAGS:
	etags *.[ch]

mostlyclean ::
	-rm -f a.out core gen$x *.o
	-rm -f $(GEN_FILES1)
	-rm -f $(GEN_FILES2)
	-rm -f $(GEN_FILES3)
	-rm -f $(GEN_FILES4)
	-rm -f $(GEN_FILES5)

clean :: mostlyclean
	-rm -f $(GEN_TARGETS) instab.tmp *.ad[bs] *.html *.ali *.tmp

distclean :: clean
	rm -f Makefile

realclean :: distclean

HTML_DIR = ../../doc/html/ada

instab.tmp : table.m4 $(GEN_SRC)
	@rm -f $@
	@for f in $(GEN_SRC) ; do \
	  $(M4) $(M4FLAGS) -DM4MACRO=table.m4 $$f | $(DEL_ADAMODE) >> $@ ;\
	done;

$(HTML_DIR)/table.html : instab.tmp
	@-touch $@
	@-chmod +w $@
	@echo '<!DOCTYPE HTML'  > $@
	@echo 'PUBLIC "-//IETF//DTD HTML 3.0//EN">' >> $@
	@echo '<HTML>' >> $@
	@echo '<HEAD>' >> $@
	@echo '<TITLE>Correspondence between ncurses C and Ada functions</TITLE>' >>$@
	@echo '</HEAD>' >> $@
	@echo '<BODY>' >> $@
	@echo '<H1>Correspondence between ncurses C and Ada functions</H1>' >>$@
	@echo '<H2>Sorted by C function name</H2>' >>$@
	@echo '<TABLE ALIGN=CENTER BORDER>' >>$@
	@echo '<TR ALIGN=LEFT>' >>$@
	@echo '<TH>C name</TH><TH>Ada name</TH><TH>man page</TH></TR>' >>$@
	@sort < instab.tmp >> $@
	@echo '</TABLE></BODY></HTML>' >>$@
	@rm -f instab.tmp

adahtml:
	@rm -rf $(HTML_DIR)/
	@mkdir -p $(HTML_DIR)
	cp -p ../src/*.ad[sb] . && chmod +w *.ad[sb]
	ln -sf ../src/*.ali .
	for f in $(GEN_SRC); do \
	   g=`basename $$f .ads.m4` ;\
	   $(M4) $(M4FLAGS) -DM4MACRO=html.m4 $$f | $(DEL_ADAMODE) > $$g.ads ;\
	done
	@-rm -f $(HTML_DIR)/$(ALIB)*.htm*
	$(GNATHTML) -d -f $(ALIB)*.ads
	for f in html/$(ALIB)*.htm*; do \
	   a=`basename $$f` ; \
	   sed -e 's/You may also.*body.*//' <$$f |\
	   sed -e 's%GNAT%<A HREF="http://$(GNATHP)">GNAT</A>%g' |\
	   sed -e 's%&lt;A HREF%<A HREF%g' |\
	   sed -e 's%"&gt;%">%g' |\
	   sed -e 's/3X/3x/g' |\
	   sed -e 's/$$\([ABCDEFGHIJKLMNOPQRSTUVWXZabcdefghijklmnopqrstuvwxz0123456789_]*:.*\)\$$/@\1@/' |\
	   sed -e 's%Juergen Pfeifer%<A HREF="http://$(HOMEP)">J\&uuml;rgen Pfeifer</A>%g' |\
	   sed -e 's%http://$(MAIL)%<A HREF="http://$(MAIL)">$(MAIL)</A>%g' |\
	   sed -e 's%&lt;/A&gt;%</A>%g' > $$a.tmp ;\
           mv $$a.tmp $$f ;\
        done
	@rm -f *.ad[sb] *.ali *.tmp
	@for f in funcs.htm main.htm ; do \
	  sed -e "\%<A HREF=funcs/ .htm>\[ \]</A>%d" < html/$$f > $$f ;\
	  mv $$f html/$$f ;\
	done
	@rm -f "html/funcs/ .htm"
	@cp -pdrf html/* $(HTML_DIR)/
	@rm -rf html

html : adahtml $(HTML_DIR)/table.html
	@

###############################################################################
# The remainder of this file is automatically generated during configuration
###############################################################################
